package com.taiji.workOrder.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.taiji.common.annotation.Excel;
import com.taiji.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * 工单明细对象 work_order
 * 
 * @author taiji
 * @date 2023-02-27
 */
@Data
@ApiModel(value = "WorkOrder", description = "工单明细对象")
public class WorkOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private String id;

    /** 工单编码 */
    @ApiModelProperty("工单编码")
    @Excel(name = "工单编码")
    private String workNumber;

    /** 项目代码 */
    @ApiModelProperty(value = "项目代码",required = true)
    @NotNull(message = "项目代码不能为空")
    @Excel(name = "项目代码")
    private String projectCode;

    /** 工单名称 */
    @ApiModelProperty(value = "工单名称",required = true)
    @Excel(name = "工单名称")
    @NotNull(message = "工单名称不能为空")
    private String name;

    /** 工单类型 */
    @ApiModelProperty(value = "工单类型",required = true)
//    @NotNull(message = "工单类型不能为空")
    @Excel(name = "工单类型")
    private String type;

    /** 工单内容 */
    @ApiModelProperty("工单内容")
    @Excel(name = "工单内容")
    private String contents;

    /** 计划完成时间 */
    @ApiModelProperty("计划完成时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planTime;

    /** 处理人 */
    @ApiModelProperty("处理人")
    @Excel(name = "处理人")
    private String dealPerson;

    /** 处理记录 */
    @ApiModelProperty("处理记录")
    @Excel(name = "处理记录")
    private String dealLog;

    /** 状态 */
    @ApiModelProperty("状态")
    @Excel(name = "状态")
    private String status;

    /** 工单来源 */
    @ApiModelProperty("工单来源")
    @Excel(name = "工单来源")
    private String origin;

    /**
     * 四位随机数
     */
    private String rand;

    /**
     * 工单附件表
     */
    private List<OrderEnclosure> orderEnclosureList;

    /**
     * 工单日志表
     */
    private List<OrderLogs> orderLogs;

    /**
     * 备注
     */
    private String remark;

}
